// Author: wsfuyibing <682805@qq.com>
// Date: 2025-04-28

package kind

// Enabled
// 启用状态.
type Enabled int

const (
	EnabledNo Enabled = iota
	EnabledYes
)

var (
	enabledTexts = map[Enabled]string{
		EnabledNo:  "已停用",
		EnabledYes: "已启用",
	}
	enabledUndefined = "未知"

	enabledFlags = map[Enabled]string{
		EnabledNo:  "disabled",
		EnabledYes: "enabled",
	}
	enabledUnknownFlag = "unknown"
)

func (o Enabled) Flag() string {
	if str, ok := enabledFlags[o]; ok {
		return str
	}
	return enabledUnknownFlag
}

func (o Enabled) Int() int { return int(o) }

func (o Enabled) IsNo() bool  { return o == EnabledNo }
func (o Enabled) IsYes() bool { return o == EnabledYes }

func (o Enabled) Text() string {
	if str, ok := enabledTexts[o]; ok {
		return str
	}
	return enabledUndefined
}
